/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/


/*************************************************************************
 *\author: starlove
 *************************************************************************/
#ifndef __CC_PYTHON_IMPORT_O_LAYER__
#define __CC_PYTHON_IMPORT_O_LAYER__

#include <cocos2d.h>
#include "python_object_nodeobjects.h"

NS_CCPY_BEGIN
	CC_OBJECT_WRAPPER_DEF_BEGIN(CCLayer)
	CCLAYER_OBJECT_WRAPPER_DEF(CCLayer)
	CC_OBJECT_WRAPPER_DEF_END

	class CPyLayer : public CPyCCObject
	{
	PYCLASS_DEF_INTERFACE(CPyLayer)
	public:
		CPyLayer();
		PYCLASS_METHOD_DEF(CPyLayer, registerWithTouchDispatcher);
		PYCLASS_GETSET_MAPPING_DEF(CPyLayer, TouchEnabled);
		PYCLASS_GETSET_MAPPING_DEF(CPyLayer, TouchMode);
		PYCLASS_GETSET_MAPPING_DEF(CPyLayer, TouchPriority);
		PYCLASS_GETSET_MAPPING_DEF(CPyLayer, AccelerometerEnabled);
		PYCLASS_GETSET_MAPPING_DEF(CPyLayer, KeypadEnabled);
		PYCLASS_SET_DEF(CPyLayer, AccelerometerInterval);
	};

	CC_OBJECT_WRAPPER_DEF_BEGIN(CCLayerRGBA)
	CCLAYER_OBJECT_WRAPPER_DEF(CCLayerRGBA)
	CC_OBJECT_WRAPPER_DEF_END

	class CPyLayerRGBA : public CPyCCObject
	{
	PYCLASS_DEF_INTERFACE(CPyLayerRGBA)
	public:
		CPyLayerRGBA();
	};

	CC_OBJECT_WRAPPER_DEF_BEGIN(CCLayerColor)
	CCLAYER_OBJECT_WRAPPER_DEF(CCLayerColor)
	CC_OBJECT_WRAPPER_DEF_END

	class CPyLayerColor : public CPyCCObject
	{
	PYCLASS_DEF_INTERFACE(CPyLayerColor)
	public:
		CPyLayerColor();
		PYCLASS_METHOD_KW_DEF(CPyLayerColor, initWithColor);
		PYCLASS_METHOD_DEF(CPyLayerColor, changeWidth);
		PYCLASS_METHOD_DEF(CPyLayerColor, changeHeight);
		PYCLASS_METHOD_DEF(CPyLayerColor, changeWidthAndHeight);
	};
	
	CC_OBJECT_WRAPPER_DEF_BEGIN(CCLayerGradient)
	CCLAYER_OBJECT_WRAPPER_DEF(CCLayerGradient)
	CC_OBJECT_WRAPPER_DEF_END
	class CPyLayerGradient : public CPyCCObject
	{
	PYCLASS_DEF_INTERFACE(CPyLayerGradient)
	public:
		CPyLayerGradient();
		PYCLASS_METHOD_KW_DEF(CPyLayerGradient, initWithColor);
		PYCLASS_METHOD_DEF(CPyLayerGradient, changeWidth);
		PYCLASS_METHOD_DEF(CPyLayerGradient, changeHeight);
		PYCLASS_METHOD_DEF(CPyLayerGradient, changeWidthAndHeight);
		PYCLASS_GETSET_MAPPING_DEF(CPyLayerGradient, StartColor);
		PYCLASS_GETSET_MAPPING_DEF(CPyLayerGradient, EndColor);
		PYCLASS_GETSET_MAPPING_DEF(CPyLayerGradient, StartOpacity);
		PYCLASS_GETSET_MAPPING_DEF(CPyLayerGradient, EndOpacity);
		PYCLASS_GETSET_MAPPING_DEF(CPyLayerGradient, Vector);
		PYCLASS_GETSET_MAPPING_DEF(CPyLayerGradient, CompressedInterpolation);
	};

	CC_OBJECT_WRAPPER_DEF_BEGIN(CCLayerMultiplex)
	CCLAYER_OBJECT_WRAPPER_DEF(CCLayerMultiplex)
	CC_OBJECT_WRAPPER_DEF_END
	class CPyLayerMultiplex : public CPyCCObject
	{
	PYCLASS_DEF_INTERFACE(CPyLayerMultiplex)
	public:
		CPyLayerMultiplex();
		PYCLASS_METHOD_DEF(CPyLayerMultiplex, initWithLayers);
		PYCLASS_METHOD_DEF(CPyLayerMultiplex, addLayer);
		PYCLASS_METHOD_DEF(CPyLayerMultiplex, switchTo);
		PYCLASS_METHOD_DEF(CPyLayerMultiplex, switchToAndReleaseMe);
	};
NS_CCPY_END

#endif